/*
 * Copyright (C) 2016 Swift Navigation Inc.
 * Contact: Colin Beighley <colinbeighley@gmail.com>
 *          Pasi Miettinen <pasi.miettinen@exafore.com>
 *
 * This source is subject to the license found in the file 'LICENSE' which must
 * be be distributed together with this source. All other rights reserved.
 *
 * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
 * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
 */
#include <stdlib.h>
#include <assert.h>

#include <libswiftnav/prns.h>

#define PRN_CODE_LENGTH_BYTES 128

static const u8 gps_l1ca_codes[][PRN_CODE_LENGTH_BYTES];
static const u8 sbas_l1ca_codes[][PRN_CODE_LENGTH_BYTES];

/* Table of arrays of PRN codes indexed by code type */
typedef const u8 (*prn_array_t)[PRN_CODE_LENGTH_BYTES];
static const prn_array_t prn_array_table[CODE_COUNT] = {
  [CODE_GPS_L1CA] = gps_l1ca_codes,
  [CODE_GPS_L2CM] = NULL,
  [CODE_SBAS_L1CA] = sbas_l1ca_codes
};

/** \defgroup prns Spreading Codes
 *
 * Pesudo-random numbers (PRNs) used in the Direct-Sequence Spread Spectrum
 * modulation of GNSS signals.
 *
 * \{ */

/** Returns the C/A code PRN corresponding to a given sid. The 1023 chip
 * PRN is packed one chip per bit into an array of 128 8-bit words. The final
 * 1024th bit is zero for all PRNs.
 *
 * \param sid Signal ID.
 *
 * \return A pointer to an array containing the C/A code PRN corresponding to
 *         the PRN number <code>prn</code>, packed one bit per chip.
 */
const u8* ca_code(gnss_signal_t sid)
{
  assert(sid_valid(sid));
  const prn_array_t prn_array = prn_array_table[sid.code];
  if (prn_array == NULL) {
    assert(!"Unsupported code type");
    return NULL;
  }
  return prn_array[sid_to_code_index(sid)];
}

inline s8 get_chip(u8* code, u32 chip_num)
{
  u32 byte = chip_num / 8;
  u8 bit = 7 - chip_num % 8;

  return ((code[byte] >> bit) & 1) ? -1 : 1;
}

/** \} */

/* {
 *   {prn0[0-7], ... , prn0[1016-1023]},
 *   ... ,
 *   {prn31[0-7], ... , prn31[1016-1023]}
 * }
 * Where 1024'th index is 0 for all.
 */
static const u8 gps_l1ca_codes[NUM_SIGNALS_GPS_L1CA][PRN_CODE_LENGTH_BYTES] = {
  {0xC8,0x39,0x49,0xE5,0x13,0xEA,0xD1,0x15,0x59,0x1E,0x9F,0xB7,0x37,0xCA,0xA1,0x00,
   0xEA,0x44,0xDE,0x0F,0x5C,0xCF,0x60,0x2F,0x3E,0xA6,0x2D,0xC6,0xF5,0x15,0x82,0x01,
   0x03,0x1D,0x81,0xC6,0xFF,0xA7,0x4B,0x61,0x56,0x27,0x2D,0xD8,0xEE,0xF0,0xD8,0x64,
   0x90,0x6D,0x2D,0xE2,0xE0,0x52,0x7E,0x0A,0xB9,0xF5,0xF3,0x31,0xC6,0xD5,0x6C,0x6E,
   0xE0,0x02,0xCD,0x9D,0xA0,0xAB,0xAE,0x94,0x73,0x89,0x45,0x2D,0x0A,0xDA,0xD8,0xE7,
   0xB2,0x1F,0x96,0x88,0x7D,0x5C,0xC9,0x25,0xFF,0x87,0xDE,0x37,0x2C,0x39,0x50,0xA5,
   0x7E,0x3D,0xA7,0x67,0xEF,0xA3,0x1F,0x01,0x28,0xB4,0x44,0xD8,0x1D,0xA3,0x44,0x8E,
   0x2C,0xC9,0xE6,0xFC,0xCA,0x69,0xAF,0x36,0xA7,0x78,0xD4,0x42,0x24,0xE1,0xCA,0x20},

  {0xE4,0x38,0x3E,0x99,0x6F,0xCB,0x2F,0xF4,0xB0,0x88,0xB1,0xE3,0x06,0x70,0x8E,0x23,
   0xA7,0x82,0xD0,0xD2,0xF0,0xE0,0xF8,0xDC,0xC6,0xB8,0x0F,0x1A,0x2E,0x46,0x66,0xD3,
   0x05,0xE2,0x4A,0x8C,0x0A,0xA0,0x9E,0x09,0x7F,0xFB,0xAB,0x54,0x15,0x2A,0xA1,0x23,
   0x21,0x42,0x53,0x70,0x39,0x54,0xDC,0x1E,0xEC,0x08,0x8B,0x5C,0xD4,0x99,0x3B,0x7D,
   0x60,0x97,0x9C,0x2C,0x34,0x6B,0x02,0x5D,0x8A,0x5B,0xA5,0xB3,0xE0,0x88,0xAD,0x28,
   0xE9,0xD9,0x23,0xEB,0xEF,0x63,0xAE,0xA6,0xF3,0x52,0xEB,0xC1,0xEF,0xB7,0xA3,0xE6,
   0xDE,0x21,0x6B,0x43,0xCC,0xB3,0x06,0x10,0xFD,0x67,0xD3,0x3A,0x8B,0xD0,0xCF,0xA0,
   0x9E,0x99,0x7D,0xCB,0x69,0xEC,0xE7,0x96,0xE6,0x6B,0xEF,0x69,0x4B,0x40,0xA1,0x90},

  {0xF2,0x38,0x85,0x27,0x51,0xDB,0xD0,0x84,0x44,0x43,0xA6,0xC9,0x1E,0xAD,0x99,0xB2,
   0x01,0x61,0xD7,0xBC,0x26,0xF7,0x34,0xA5,0x3A,0xB7,0x1E,0x74,0x43,0xEF,0x94,0xBA,
   0x06,0x9D,0xAF,0x29,0x70,0x23,0x74,0xBD,0x6B,0x15,0xE8,0x12,0x68,0xC7,0x9D,0x80,
   0xF9,0xD5,0xEC,0x39,0x55,0xD7,0x8D,0x14,0xC6,0xF6,0x37,0x6A,0x5D,0xBF,0x10,0xF4,
   0xA0,0xDD,0x34,0xF4,0xFE,0x0B,0x54,0x39,0x76,0xB2,0xD5,0xFC,0x95,0xA1,0x97,0xCF,
   0x44,0x3A,0x79,0x5A,0x26,0x7C,0x1D,0x67,0x75,0x38,0x71,0x3A,0x8E,0x70,0xDA,0x47,
   0x0E,0x2F,0x0D,0x51,0xDD,0x3B,0x0A,0x98,0x17,0x8E,0x18,0xCB,0xC0,0xE9,0x0A,0x37,
   0xC7,0xB1,0x30,0x50,0xB8,0x2E,0x43,0xC6,0xC6,0xE2,0x72,0xFC,0xFC,0x90,0x14,0x48},

  {0xF9,0x38,0xD8,0xF8,0x4E,0xD3,0xAF,0x3C,0x3E,0x26,0x2D,0x5C,0x12,0xC3,0x12,0x7A,
   0xD2,0x10,0x54,0x0B,0x4D,0xFC,0xD2,0x99,0xC4,0xB0,0x96,0xC3,0x75,0x3B,0x6D,0x8E,
   0x87,0x22,0x5D,0xFB,0xCD,0x62,0x81,0xE7,0x61,0x62,0xC9,0xB1,0x56,0x31,0x03,0xD1,
   0x15,0x9E,0x33,0x9D,0xE3,0x96,0x25,0x91,0xD3,0x89,0x69,0x71,0x19,0x2C,0x05,0x30,
   0x40,0xF8,0x60,0x98,0x9B,0x3B,0x7F,0x0B,0x08,0xC6,0x6D,0xDB,0x2F,0x35,0x0A,0xBC,
   0x92,0xCB,0xD4,0x02,0xC2,0xF3,0xC4,0x87,0xB6,0x0D,0x3C,0x47,0x3E,0x93,0x66,0x97,
   0xE6,0x28,0x3E,0x58,0xD5,0xFF,0x0C,0xDC,0x62,0xFA,0xFD,0x33,0x65,0x75,0xE8,0xFC,
   0x6B,0x25,0x16,0x9D,0x50,0xCF,0x11,0xEE,0xD6,0xA6,0xBC,0x36,0x27,0x78,0x4E,0xA4},

  {0x96,0xC4,0x6C,0x57,0x1E,0xAE,0xF9,0xBE,0xA3,0xEE,0x45,0x93,0xAF,0x64,0x86,0x01,
   0xC0,0xE7,0xBD,0x26,0xDD,0x96,0xF3,0xDC,0x9B,0x67,0x10,0x12,0x51,0xFE,0x1C,0xB6,
   0x8E,0x77,0x46,0xE2,0x81,0x68,0x4D,0x78,0xFC,0x4C,0xC0,0x5F,0xF3,0x16,0x5F,0x24,
   0xA9,0xF5,0x65,0xA4,0xC0,0x60,0x5D,0xA1,0x1E,0xDA,0x36,0x1D,0x21,0xC3,0x31,0x0A,
   0x41,0x34,0xA2,0xDA,0xAA,0x3A,0xEE,0x16,0x55,0xFF,0x13,0xF2,0x48,0x0D,0xB8,0x57,
   0xB7,0xC2,0x67,0x78,0xFA,0xA7,0x4E,0x83,0xA7,0x3E,0x8E,0xF1,0xC4,0x85,0xDD,0x92,
   0x66,0x06,0xD1,0xD7,0x51,0xC0,0xD0,0xE1,0x50,0x3F,0x37,0xB5,0x52,0x30,0x0C,0x95,
   0xD3,0xE4,0xCD,0x28,0xD5,0x3C,0x0F,0x91,0xD5,0x62,0xE7,0xAD,0x4D,0x04,0xD4,0xE4},

  {0xCB,0x46,0xAC,0x40,0x69,0x69,0x3B,0xA1,0x4D,0xF0,0xDC,0xF1,0x4A,0x27,0x9D,0xA3,
   0x32,0xD3,0x61,0x46,0x30,0x4C,0x31,0x25,0x14,0x58,0x91,0xF0,0x7C,0x33,0xA9,0x88,
   0xC3,0x57,0x29,0x1E,0x35,0xC7,0x1D,0x05,0xAA,0xCE,0x5D,0x97,0x9B,0xD9,0xE2,0x83,
   0x3D,0x8E,0x77,0x53,0x29,0x4D,0xCD,0xCB,0x3F,0x9F,0x69,0xCA,0xA7,0x12,0x15,0xCF,
   0x30,0x0C,0xAB,0x8F,0xB1,0x23,0xA2,0x1C,0x99,0x60,0x8E,0xDC,0x41,0xE3,0x1D,0x70,
   0xEB,0x37,0xDB,0x13,0xAC,0x9E,0x6D,0x75,0xDF,0x0E,0x43,0xA2,0x9B,0xE9,0xE5,0x7D,
   0x52,0x3C,0xD0,0x1B,0x93,0x82,0xE1,0xE0,0xC1,0x22,0x6A,0x8C,0x2C,0x19,0x6B,0xAD,
   0x61,0x0F,0xE8,0x21,0x66,0x46,0x37,0xC5,0x5F,0x66,0xF6,0x9E,0xFF,0xB2,0x2E,0xF2},

  {0x96,0x7F,0xD2,0x69,0x0E,0x51,0x89,0x4A,0x68,0xF9,0x6F,0x8B,0x72,0x73,0x17,0xA7,
   0x23,0xE0,0xD3,0xF0,0xCA,0x5A,0x8A,0x20,0x94,0x76,0x7E,0x7F,0xF8,0x0C,0x75,0xB5,
   0xF1,0x92,0xE3,0x98,0x02,0x82,0xF9,0x6C,0x12,0x0F,0x86,0x22,0x1E,0x2A,0xFC,0xFC,
   0x3E,0x4A,0x2C,0xC8,0x43,0x31,0x57,0x8B,0xE0,0x66,0x00,0x94,0x07,0xE8,0xB8,0xCA,
   0x0B,0x9C,0x7A,0x10,0xCA,0x6C,0x8A,0xEA,0xBC,0x8F,0x5C,0x87,0x61,0x37,0x5F,0xFA,
   0x54,0x98,0xD6,0xB1,0xE5,0x14,0x8F,0x05,0xCD,0xA4,0x75,0x90,0x03,0xFC,0x7C,0x42,
   0x68,0x60,0xC3,0xC6,0xD9,0xCC,0x58,0x0B,0xB9,0xF4,0xC6,0xFE,0x6B,0xF5,0x9B,0xCC,
   0xFB,0xA9,0x56,0xF9,0x17,0x98,0x5F,0xB1,0x5C,0xFF,0x72,0x1A,0x9D,0xB1,0x0C,0xC8},

  {0xCB,0x1B,0x73,0x5F,0x61,0x16,0x83,0xDB,0x28,0x7B,0x49,0xFD,0x24,0xAC,0x55,0x70,
   0x43,0x50,0xD6,0x2D,0x3B,0xAA,0x0D,0xDB,0x13,0xD0,0x26,0xC6,0xA8,0xCA,0x9D,0x09,
   0x7C,0xA5,0xFB,0xA3,0x74,0x32,0x47,0x0F,0xDD,0xEF,0xFE,0xA9,0x6D,0x47,0xB3,0x6F,
   0x76,0x51,0xD3,0xE5,0x68,0xE5,0x48,0xDE,0x40,0xC1,0x72,0x8E,0x34,0x07,0xD1,0x2F,
   0x15,0x58,0xC7,0xEA,0x81,0x08,0x90,0x62,0xED,0xD8,0xA9,0x66,0xD5,0x7E,0x6E,0xA6,
   0x1A,0x9A,0x83,0xF7,0x23,0x47,0x8D,0xB6,0xEA,0x43,0x3E,0x12,0x78,0x55,0x35,0x95,
   0x55,0x0F,0xD9,0x13,0x57,0x84,0xA5,0x95,0xB5,0xC7,0x92,0x29,0xB0,0xFB,0xA0,0x01,
   0xF5,0x29,0x25,0xC9,0x87,0x14,0x1F,0xD5,0x1B,0xA8,0x3C,0x45,0x17,0xE8,0xC2,0xE4},

  {0xE5,0xA9,0x23,0xC4,0x56,0xB5,0x06,0x93,0x88,0x3A,0x5A,0xC6,0x0F,0xC3,0xF4,0x1B,
   0xF3,0x08,0xD4,0xC3,0xC3,0x52,0x4E,0x26,0xD0,0x03,0x0A,0x9A,0x00,0xA9,0xE9,0x57,
   0x3A,0x3E,0x77,0xBE,0xCF,0x6A,0x18,0x3E,0x3A,0x1F,0xC2,0xEC,0xD4,0xF1,0x14,0xA6,
   0xD2,0x5C,0x2C,0x73,0xFD,0x0F,0x47,0x74,0x90,0x92,0xCB,0x83,0x2D,0xF0,0x65,0xDD,
   0x9A,0x3A,0x99,0x17,0xA4,0xBA,0x9D,0x26,0xC5,0x73,0x53,0x96,0x0F,0x5A,0xF6,0x08,
   0x3D,0x9B,0xA9,0x54,0x40,0x6E,0x0C,0xEF,0x79,0xB0,0x9B,0xD3,0x45,0x81,0x91,0x7E,
   0xCB,0xB8,0x54,0x79,0x90,0xA0,0xDB,0x5A,0xB3,0xDE,0x38,0x42,0x5D,0x7C,0xBD,0xE7,
   0x72,0x69,0x1C,0x51,0xCF,0x52,0x3F,0xE7,0x38,0x03,0x9B,0x6A,0xD2,0xC4,0x25,0xF2},

  {0xD1,0x28,0x9C,0x36,0x84,0x08,0x47,0x66,0xD2,0x30,0x2D,0xE7,0xAC,0xFD,0x02,0x85,
   0xA2,0xE4,0x9F,0x1C,0x67,0xE4,0x0F,0x8E,0x55,0x16,0x75,0xC4,0x1B,0xED,0x7A,0x42,
   0xFE,0xDE,0x52,0xEA,0xA3,0x0F,0x28,0x15,0x08,0x61,0xB6,0x54,0xF3,0x4B,0x80,0x3B,
   0xA1,0x8A,0xDD,0xDE,0xA5,0xEB,0xC8,0xAD,0x70,0x51,0xFE,0xCE,0x50,0x40,0x86,0x61,
   0x4A,0xD2,0x9E,0x24,0xAD,0xB2,0x59,0x20,0x81,0x06,0x27,0x73,0xF7,0xFF,0x6A,0xEA,
   0xF6,0x37,0x3D,0x72,0x8D,0x86,0xED,0xBD,0x51,0xA0,0xDF,0x1D,0x8F,0x5A,0x79,0x24,
   0x27,0xAE,0x54,0xC2,0x2E,0x9E,0xCB,0xA5,0xC3,0x2A,0xF3,0x55,0x77,0x64,0x60,0xF0,
   0xE3,0xCF,0xFF,0x56,0xA1,0x84,0x28,0x2B,0x41,0xFF,0x94,0x7B,0xBC,0xA9,0x8C,0x00},

  {0xE8,0xB0,0xD4,0x70,0xA4,0x3A,0x64,0xCD,0x75,0x1F,0xE8,0xCB,0x4B,0xEB,0x5F,0xE1,
   0x03,0xD2,0xF0,0x5B,0x6D,0x75,0x4F,0x0C,0x73,0x60,0x23,0x1B,0x59,0x3A,0x1A,0xF2,
   0xFB,0x03,0xA3,0x1A,0x24,0xF4,0xAF,0xB3,0x50,0xD8,0xE6,0x92,0x1B,0xF7,0x0D,0x0C,
   0xB9,0xB1,0xAB,0x6E,0x1B,0x88,0x07,0x4D,0x08,0xDA,0x8D,0xA3,0x1F,0xD3,0xCE,0x7A,
   0xB5,0xFF,0xB5,0xF0,0xB2,0xE7,0xF9,0x87,0xF3,0x1C,0x14,0x9C,0x9E,0x1A,0x74,0x2E,
   0x4B,0xCD,0x76,0x16,0x97,0x0E,0xBC,0xEA,0xA4,0x41,0x6B,0x54,0xBE,0x06,0x37,0x26,
   0x72,0xE8,0x92,0x91,0x2C,0x2D,0xEC,0x42,0x88,0xA8,0x88,0xFC,0x3E,0xB3,0x5D,0x9F,
   0xF9,0x1A,0x71,0x1E,0x5C,0x1A,0x24,0x18,0x15,0x28,0x4F,0x75,0x87,0x64,0x82,0x80},

  {0xFA,0x1A,0xE2,0x42,0x3C,0x2F,0xFD,0xF2,0x4F,0x43,0xFB,0x16,0x01,0xA5,0xE6,0x0A,
   0x7B,0x04,0x5C,0x29,0x2A,0x99,0xBF,0x6D,0xE9,0xC6,0x9D,0xC3,0x28,0xE4,0x72,0x86,
   0xF8,0x9A,0x27,0x9E,0x46,0xF7,0x8D,0x89,0xEA,0xAA,0x1A,0xC0,0xD5,0x86,0x68,0xDA,
   0xF3,0xA2,0xCD,0x9A,0x6B,0x21,0x13,0x45,0x2A,0xBD,0xE8,0xCE,0xEB,0xFE,0xB8,0x71,
   0xB5,0xA2,0x6A,0xEF,0xBA,0x98,0x41,0xFD,0x96,0x97,0x81,0x90,0xF0,0x91,0xBC,0xFD,
   0x3A,0x4E,0xC1,0x7D,0x9C,0xE8,0x80,0x14,0xA3,0xC9,0xDC,0x62,0x6A,0xFF,0x03,0xA7,
   0xCD,0x1A,0x40,0x2C,0x6D,0xD8,0xB6,0x48,0xFF,0x89,0x2B,0xC2,0xC8,0x2D,0x0C,0x73,
   0xB2,0xC5,0xD5,0xA8,0x1D,0xB2,0xA1,0x0D,0x6A,0x76,0x54,0x31,0x14,0x71,0x46,0x60},

  {0xFD,0x29,0xEB,0x4A,0xF8,0x29,0xB9,0x87,0x3B,0xA6,0x03,0xB3,0x9D,0x47,0x2D,0xA6,
   0xEF,0x22,0x91,0xC1,0xCB,0xCB,0x97,0x7D,0xAD,0x08,0x57,0x18,0xC0,0xBE,0x9E,0x90,
   0xF8,0x21,0x99,0xA0,0x56,0x08,0xFD,0x7D,0x21,0xBD,0x30,0xD8,0x08,0x91,0xF9,0x7C,
   0x10,0xA5,0xA3,0x4C,0x7C,0xED,0x6A,0xB9,0x25,0xAC,0x86,0xA3,0x42,0x0C,0xD1,0x72,
   0xCA,0x47,0xCF,0x95,0x39,0x72,0xF5,0xE9,0x78,0xD4,0xC7,0xED,0x1D,0xAD,0x1F,0x25,
   0xAD,0xF1,0x88,0x11,0x1F,0xB9,0x8A,0x3E,0x5D,0x75,0xEA,0xEB,0x4C,0xD4,0x8A,0x67,
   0x87,0xB2,0x98,0xE6,0x0D,0x8E,0xD2,0xB4,0x16,0xF9,0x64,0xB7,0xE1,0x17,0xEB,0xDE,
   0x51,0x9F,0x64,0x61,0x02,0x01,0x60,0x8B,0x00,0xEC,0xAF,0x50,0xD3,0x08,0xE7,0xB0},

  {0xFE,0xB0,0x6F,0xCE,0x9A,0x2A,0x9B,0xBD,0x81,0xD4,0xFF,0xE1,0x53,0x36,0x48,0x70,
   0xA5,0x31,0xF7,0x35,0xBB,0x62,0x83,0x75,0x8F,0x6F,0x32,0x75,0x34,0x93,0xE8,0x9B,
   0xF8,0x7C,0x46,0xBF,0x5E,0x77,0x45,0x07,0x44,0x36,0xA5,0xD4,0x66,0x1A,0x31,0xAF,
   0x61,0x26,0x14,0x27,0x77,0x0B,0x56,0x47,0x22,0x24,0x31,0x95,0x96,0xF5,0xE5,0xF3,
   0x75,0xB5,0x1D,0x28,0x78,0x87,0xAF,0xE3,0x0F,0xF5,0x64,0xD3,0xEB,0x33,0x4E,0xC9,
   0xE6,0x2E,0x2C,0xA7,0x5E,0x11,0x0F,0x2B,0x22,0x2B,0xF1,0xAF,0xDF,0xC1,0x4E,0x87,
   0xA2,0xE6,0xF4,0x83,0x3D,0xA5,0xE0,0xCA,0x62,0x41,0x43,0x0D,0x75,0x8A,0x98,0x08,
   0xA0,0x32,0x3C,0x85,0x8D,0xD8,0x80,0x48,0x35,0xA1,0xD2,0xE0,0x30,0xB4,0x37,0x58},

  {0xFF,0x7C,0xAD,0x8C,0xAB,0x2B,0x0A,0xA0,0xDC,0xED,0x81,0xC8,0x34,0x0E,0xFA,0x9B,
   0x80,0x38,0x44,0x4F,0x83,0x36,0x09,0x71,0x9E,0x5C,0x80,0xC3,0xCE,0x85,0x53,0x9E,
   0x78,0x52,0xA9,0x30,0xDA,0x48,0x99,0x3A,0x76,0xF3,0x6F,0x52,0x51,0x5F,0xD5,0xC6,
   0xD9,0xE7,0xCF,0x92,0xF2,0xF8,0x48,0x38,0x21,0xE0,0x6A,0x0E,0xFC,0x89,0x7F,0xB3,
   0xAA,0x4C,0x74,0x76,0xD8,0x7D,0x02,0xE6,0x34,0x65,0xB5,0x4C,0x90,0x7C,0x66,0x3F,
   0xC3,0xC1,0xFE,0xFC,0x7E,0xC5,0x4D,0xA1,0x9D,0x84,0xFC,0x0D,0x96,0x4B,0xAC,0xF7,
   0xB0,0x4C,0xC2,0xB1,0xA5,0xB0,0x79,0xF5,0x58,0x1D,0x50,0xD0,0x3F,0xC4,0x21,0xE3,
   0xD8,0xE4,0x90,0xF7,0xCA,0x34,0x70,0x29,0xAF,0x07,0x6C,0x38,0x41,0x6A,0x5F,0x2C},

  {0xFF,0x9A,0xCC,0xAD,0xB3,0xAB,0xC2,0x2E,0x72,0x71,0x3E,0xDC,0x87,0x92,0xA3,0xEE,
   0x12,0xBC,0x9D,0xF2,0x9F,0x1C,0x4C,0x73,0x96,0xC5,0x59,0x98,0xB3,0x8E,0x0E,0x1C,
   0xB8,0x45,0xDE,0xF7,0x18,0x57,0x77,0x24,0xEF,0x91,0x8A,0x11,0x4A,0xFD,0x27,0xF2,
   0x05,0x87,0x22,0x48,0x30,0x01,0xC7,0x07,0xA0,0x02,0x47,0xC3,0x49,0xB7,0x32,0x93,
   0xC5,0xB0,0xC0,0xD9,0x88,0x00,0x54,0x64,0xA9,0xAD,0xDD,0x83,0x2D,0xDB,0xF2,0x44,
   0xD1,0x36,0x17,0xD1,0xEE,0xAF,0x6C,0xE4,0xC2,0x53,0x7A,0xDC,0xB2,0x8E,0xDD,0xCF,
   0xB9,0x19,0xD9,0xA8,0xE9,0xBA,0xB5,0x6A,0xC5,0x33,0x59,0x3E,0x9A,0xE3,0x7D,0x16,
   0x64,0x8F,0xC6,0xCE,0xE9,0xC2,0x08,0x19,0x62,0x54,0x33,0x54,0x79,0x85,0x6B,0x16},

  {0x9B,0x80,0x44,0xFC,0xE4,0x5E,0x23,0x9A,0x3B,0x40,0x62,0x92,0x85,0xC7,0xE5,0x28,
   0x41,0xBE,0x2E,0xD5,0x78,0x57,0xCE,0x08,0x3F,0x8C,0x8E,0xA5,0xDC,0x94,0xDB,0x92,
   0xF0,0xB8,0x40,0xFB,0x2B,0x03,0xA0,0xFF,0xE1,0xAA,0x47,0x1F,0xCA,0x8E,0x17,0x62,
   0x89,0xC7,0x46,0x0F,0x67,0x4F,0x98,0x8D,0xF9,0xCC,0x6B,0x79,0x80,0xF5,0x5E,0x4D,
   0x4B,0xA5,0xE2,0x58,0x8C,0x4C,0xB8,0xC9,0x17,0x28,0x73,0x42,0x4D,0xD0,0x49,0xA7,
   0x30,0x39,0xE0,0xDE,0xA2,0x1E,0x1E,0x45,0x4F,0x82,0x03,0xC6,0xDC,0xBE,0xAB,0x22,
   0xD8,0x65,0x1E,0x37,0x29,0x4B,0xA3,0x8C,0x1F,0xAC,0x7F,0xAE,0xAD,0x1D,0x27,0x41,
   0xCC,0xB1,0x6D,0x8F,0xA7,0x26,0x3C,0x7E,0xBC,0x87,0xF9,0x69,0xF0,0xFE,0x9F,0x80},

  {0xCD,0xE4,0xB8,0x15,0x94,0x11,0x56,0xB3,0x01,0xA7,0xCF,0x71,0xDF,0x76,0x2C,0x37,
   0xF2,0x7F,0xA8,0xBF,0xE2,0xAC,0xAF,0xCF,0x46,0x2D,0x5E,0xAB,0xBA,0x86,0xCA,0x1A,
   0xFC,0x30,0xAA,0x12,0xE0,0xF2,0xEB,0xC6,0x24,0x3D,0x1E,0x37,0x87,0x15,0xC6,0xA0,
   0x2D,0x97,0x66,0x86,0xFA,0xDA,0x2F,0x5D,0x4C,0x14,0x47,0x78,0xF7,0x89,0x22,0x6C,
   0xB5,0x44,0x0B,0xCE,0xA2,0x18,0x89,0x73,0x38,0x0B,0x3E,0x84,0x43,0x0D,0xE5,0x88,
   0xA8,0xCA,0x18,0xC0,0x80,0xC2,0xC5,0x16,0xAB,0x50,0x05,0x39,0x17,0xF4,0x5E,0x25,
   0x0D,0x0D,0x37,0xEB,0xAF,0xC7,0x58,0x56,0x66,0xEB,0xCE,0x81,0xD3,0x8F,0xFE,0x47,
   0x6E,0xA5,0x38,0x72,0xDF,0x4B,0x2E,0x32,0xEB,0x94,0x79,0xFC,0xA1,0x4F,0x0B,0x40},

  {0xE6,0xD6,0xC6,0x61,0x2C,0x36,0xEC,0x27,0x9C,0xD4,0x19,0x80,0x72,0x2E,0xC8,0xB8,
   0x2B,0x9F,0x6B,0x8A,0xAF,0xD1,0x1F,0x2C,0xFA,0xFD,0xB6,0xAC,0x89,0x8F,0xC2,0xDE,
   0xFA,0x74,0xDF,0x66,0x05,0x0A,0x4E,0x5A,0xC6,0xF6,0xB2,0xA3,0xA1,0xD8,0x2E,0x41,
   0x7F,0xBF,0x76,0xC2,0x34,0x10,0xF4,0xB5,0x16,0xF8,0x51,0x78,0x4C,0x37,0x1C,0x7C,
   0x4A,0x34,0xFF,0x05,0xB5,0x32,0x91,0xAE,0x2F,0x9A,0x98,0x67,0x44,0x63,0x33,0x9F,
   0x64,0xB3,0xE4,0xCF,0x91,0xAC,0xA8,0xBF,0x59,0x39,0x06,0x46,0xF2,0x51,0x24,0xA6,
   0xE7,0xB9,0x23,0x05,0xEC,0x81,0x25,0xBB,0x5A,0x48,0x16,0x16,0x6C,0xC6,0x92,0xC4,
   0x3F,0xAF,0x12,0x8C,0x63,0x7D,0xA7,0x14,0xC0,0x1D,0xB9,0xB6,0x09,0x97,0xC1,0x20},

  {0xF3,0x4F,0xF9,0x5B,0x70,0x25,0x31,0x6D,0xD2,0x6D,0xF2,0xF8,0xA4,0x82,0xBA,0xFF,
   0xC7,0x6F,0x0A,0x10,0x09,0x6F,0xC7,0x5D,0x24,0x95,0xC2,0xAF,0x10,0x0B,0x46,0xBC,
   0xF9,0x56,0xE5,0xDC,0x77,0xF6,0x1C,0x94,0xB7,0x93,0x64,0xE9,0xB2,0xBE,0xDA,0x31,
   0xD6,0xAB,0x7E,0xE0,0x53,0x75,0x99,0x41,0x3B,0x8E,0x5A,0x78,0x11,0xE8,0x03,0x74,
   0x35,0x8C,0x85,0x60,0x3E,0xA7,0x9D,0xC0,0xA4,0x52,0x4B,0x16,0xC7,0xD4,0x58,0x94,
   0x82,0x8F,0x1A,0xC8,0x19,0x1B,0x9E,0x6B,0xA0,0x0D,0x87,0xF9,0x00,0x83,0x99,0xE7,
   0x12,0xE3,0x29,0x72,0xCD,0x22,0x1B,0x4D,0xC4,0x19,0xFA,0x5D,0xB3,0x62,0x24,0x85,
   0x97,0x2A,0x07,0xF3,0x3D,0x66,0xE3,0x87,0xD5,0xD9,0x59,0x93,0x5D,0xFB,0xA4,0x10},

  {0xF9,0x83,0x66,0xC6,0x5E,0x2C,0xDF,0xC8,0xF5,0x31,0x07,0x44,0xCF,0xD4,0x83,0xDC,
   0x31,0x17,0x3A,0xDD,0x5A,0x30,0xAB,0x65,0xCB,0xA1,0xF8,0xAE,0xDC,0xC9,0x04,0x8D,
   0xF8,0xC7,0xF8,0x81,0x4E,0x88,0x35,0xF3,0x8F,0x21,0x8F,0xCC,0xBB,0x0D,0xA0,0x09,
   0x82,0x21,0x7A,0xF1,0x60,0xC7,0x2F,0xBB,0x2D,0x35,0x5F,0xF8,0x3F,0x07,0x8C,0xF0,
   0x0A,0x50,0xB8,0x52,0xFB,0x6D,0x1B,0xF7,0xE1,0xB6,0x22,0xAE,0x06,0x0F,0xED,0x11,
   0x71,0x91,0x65,0xCB,0xDD,0x40,0x05,0x01,0xDC,0x97,0xC7,0x26,0xF9,0xEA,0xC7,0x47,
   0xE8,0x4E,0x2C,0x49,0x5D,0xF3,0x84,0x36,0x8B,0x31,0x0C,0x78,0x5C,0xB0,0x7F,0xA5,
   0x43,0x68,0x8D,0x4C,0x92,0x6B,0x41,0xCE,0x5F,0x3B,0x29,0x81,0xF7,0xCD,0x96,0x88},

  {0xFC,0xE5,0x29,0x08,0xC9,0x28,0x28,0x9A,0x66,0x9F,0x7D,0x9A,0xFA,0x7F,0x9F,0x4D,
   0xCA,0x2B,0x22,0xBB,0xF3,0x9F,0x1D,0x79,0xBC,0x3B,0xE5,0xAE,0x3A,0xA8,0x25,0x95,
   0x78,0x0F,0x76,0x2F,0xD2,0x37,0x21,0x40,0x13,0x78,0xFA,0x5E,0x3F,0xD4,0x1D,0x15,
   0xA8,0x64,0x78,0xF9,0xF9,0x1E,0x74,0xC6,0x26,0x68,0xDD,0x38,0x28,0x70,0x4B,0x32,
   0x15,0xBE,0xA6,0xCB,0x99,0x88,0x58,0xEC,0x43,0x44,0x16,0x72,0x66,0xE2,0x37,0xD3,
   0x88,0x1E,0x5A,0x4A,0x3F,0x6D,0xC8,0xB4,0xE2,0xDA,0xE7,0x49,0x05,0x5E,0x68,0x17,
   0x95,0x18,0xAE,0xD4,0x95,0x9B,0x4B,0x8B,0x2C,0xA5,0x77,0x6A,0xAB,0x59,0x52,0x35,
   0x29,0x49,0xC8,0x13,0x45,0xED,0x90,0xEA,0x9A,0x4A,0x11,0x88,0xA2,0xD6,0x8F,0xC4},

  {0x8C,0xF7,0x83,0x3E,0xFB,0xB0,0x3D,0x03,0x59,0xA5,0x21,0x89,0x27,0x35,0xD1,0xF4,
   0x21,0x53,0xF4,0x17,0x81,0xD8,0xF1,0x89,0xDD,0xA1,0x43,0x10,0xE2,0xD9,0xFB,0xFD,
   0x0C,0x0C,0xEF,0xAB,0x56,0x55,0x22,0x62,0x29,0xC2,0x88,0xA2,0x6D,0x1A,0x6C,0x70,
   0x7E,0x2E,0x6B,0x9F,0x0D,0x6E,0xDD,0xD2,0x2E,0x4A,0xBA,0x5D,0x45,0x84,0x66,0x44,
   0x1E,0xBE,0xFB,0x14,0x86,0x80,0x27,0x54,0x39,0x21,0x9D,0xE7,0x6A,0x8C,0xBC,0x1B,
   0x5B,0x6F,0xD9,0xFD,0x54,0x66,0x2E,0x88,0x1C,0xDD,0x6F,0xFE,0x33,0x8A,0x91,0x23,
   0x14,0xA7,0x5C,0x06,0x28,0xDA,0xBE,0xD1,0x26,0xD2,0x56,0xC9,0x95,0xAF,0xCC,0x64,
   0xC5,0x02,0x17,0xB7,0xF3,0xAC,0x38,0x6F,0x8F,0x35,0x4F,0x93,0xE6,0x45,0x9A,0x00},

  {0xF1,0xA1,0x01,0xA3,0x33,0xD8,0xF2,0xBE,0xFE,0x31,0x5A,0x9B,0xD0,0xDC,0xFC,0x64,
   0x4B,0x72,0xB1,0x48,0x56,0x5E,0x20,0xAD,0x18,0xD0,0x7B,0x19,0xB7,0xC2,0xE2,0xB1,
   0x06,0xC0,0x70,0x36,0x78,0x5C,0xCC,0xC7,0x0E,0x9E,0x7D,0x1E,0x06,0x4C,0x55,0x53,
   0x88,0x56,0x5B,0x52,0x5E,0x31,0xB1,0xEA,0xC1,0x7E,0x80,0x5C,0x89,0x46,0x24,0x75,
   0x1F,0x2F,0xE6,0x49,0xBF,0xFE,0x0E,0x33,0x01,0x93,0x76,0xC2,0x63,0x3F,0xC6,0x23,
   0x0F,0xE5,0xDD,0xEC,0x67,0xD4,0x98,0x72,0x0A,0x66,0x6A,0x7E,0x1D,0x65,0x1E,0xA7,
   0x2B,0x7B,0x61,0x34,0xED,0x10,0x38,0xE6,0x63,0x36,0x3F,0x71,0x54,0x74,0x79,0xE1,
   0x36,0x1C,0x68,0xB4,0x37,0xF7,0xA3,0x05,0xF3,0xAF,0x0F,0x4C,0x1F,0x2C,0xC4,0xA0},

  {0xF8,0xF4,0x1A,0xBA,0x7F,0xD2,0x3E,0x21,0x63,0x1F,0x53,0x75,0x75,0xFB,0xA0,0x91,
   0xF7,0x19,0xE7,0x71,0x75,0xA8,0x58,0x9D,0xD5,0x83,0x24,0x75,0x8F,0x2D,0xD6,0x8B,
   0x07,0x0C,0xB2,0x74,0x49,0x5D,0x5D,0xDA,0x53,0xA7,0x03,0x37,0x61,0x74,0xE7,0xB8,
   0xAD,0x5F,0xE8,0x28,0x66,0x65,0x3B,0xEE,0xD0,0x4D,0x32,0xEA,0x73,0x50,0x9F,0x70,
   0x9F,0x01,0x09,0xC6,0x3B,0xC1,0xD2,0x0E,0x33,0x56,0xBC,0x44,0x54,0x7A,0x22,0x4A,
   0xB7,0x24,0x06,0x59,0xE2,0x27,0x86,0x0D,0x09,0xA2,0x31,0xE5,0x77,0x19,0x84,0xE7,
   0xF4,0x82,0x08,0x6A,0x4D,0xEA,0x95,0xE3,0x58,0xA6,0xEE,0xEE,0x2F,0x3B,0x51,0x17,
   0x13,0xF3,0xBA,0xEF,0x17,0x23,0xE1,0x8F,0x4C,0x00,0x02,0xEE,0x56,0xA6,0x26,0xD0},

  {0xFC,0x5E,0x97,0x36,0xD9,0xD7,0x58,0x6E,0xAD,0x88,0x57,0x82,0x27,0x68,0x0E,0xEB,
   0x29,0x2C,0x4C,0x6D,0xE4,0x53,0x64,0x85,0xB3,0x2A,0x8B,0xC3,0x93,0x5A,0x4C,0x96,
   0x07,0xEA,0xD3,0x55,0x51,0xDD,0x95,0x54,0xFD,0x3B,0xBC,0x23,0xD2,0xE8,0xBE,0xCD,
   0x3F,0xDB,0x31,0x95,0x7A,0x4F,0x7E,0xEC,0xD8,0xD4,0xEB,0xB1,0x0E,0x5B,0xC2,0xF2,
   0x5F,0x16,0x7E,0x01,0xF9,0xDE,0x3C,0x10,0xAA,0x34,0x59,0x07,0x4F,0xD8,0xD0,0x7E,
   0x6B,0x44,0xEB,0x83,0x20,0xDE,0x09,0x32,0x88,0x40,0x1C,0x28,0xC2,0x27,0xC9,0xC7,
   0x9B,0x7E,0xBC,0xC5,0x1D,0x97,0xC3,0x61,0xC5,0x6E,0x86,0x21,0x92,0x9C,0xC5,0x6C,
   0x01,0x04,0x53,0xC2,0x87,0x49,0xC0,0xCA,0x13,0xD7,0x84,0x3F,0x72,0x63,0x57,0xE8},

  {0xFE,0x0B,0xD1,0xF0,0x8A,0xD5,0xEB,0x49,0x4A,0xC3,0xD5,0xF9,0x8E,0x21,0xD9,0xD6,
   0x46,0x36,0x99,0xE3,0xAC,0xAE,0xFA,0x89,0x80,0x7E,0x5C,0x18,0x9D,0x61,0x81,0x98,
   0x87,0x99,0xE3,0xC5,0xDD,0x9D,0xF1,0x13,0xAA,0x75,0xE3,0xA9,0x8B,0x26,0x92,0x77,
   0xF6,0x99,0x5D,0x4B,0xF4,0x5A,0x5C,0x6D,0xDC,0x98,0x07,0x1C,0xB0,0xDE,0x6C,0x33,
   0x3F,0x1D,0xC5,0xE2,0x18,0xD1,0xCB,0x1F,0xE6,0x85,0x2B,0xA6,0xC2,0x09,0xA9,0x64,
   0x05,0x74,0x9D,0x6E,0x41,0xA2,0xCE,0xAD,0x48,0xB1,0x0A,0xCE,0x18,0xB8,0xEF,0x57,
   0xAC,0x80,0xE6,0x92,0xB5,0xA9,0x68,0x20,0x8B,0x8A,0xB2,0x46,0x4C,0x4F,0x0F,0x51,
   0x88,0x7F,0xA7,0x54,0x4F,0x7C,0xD0,0x68,0xBC,0x3C,0x47,0x57,0xE0,0x01,0xEF,0x74},

  {0xFF,0x21,0x72,0x93,0xA3,0x54,0xB2,0xDA,0xB9,0x66,0x14,0xC4,0x5A,0x85,0x32,0x48,
   0xF1,0xBB,0xF3,0x24,0x88,0xD0,0x35,0x8F,0x99,0xD4,0x37,0xF5,0x1A,0x7C,0x67,0x1F,
   0xC7,0xA0,0x7B,0x8D,0x9B,0xBD,0xC3,0x30,0x01,0xD2,0xCC,0x6C,0xA7,0xC1,0x84,0x2A,
   0x92,0x38,0x6B,0x24,0xB3,0x50,0xCD,0x2D,0x5E,0xBE,0x71,0x4A,0x6F,0x9C,0xBB,0x53,
   0x8F,0x18,0x18,0x13,0xE8,0x56,0x30,0x98,0x40,0xDD,0x92,0xF6,0x04,0xE1,0x15,0xE9,
   0x32,0x6C,0xA6,0x18,0xF1,0x1C,0xAD,0x62,0xA8,0xC9,0x81,0xBD,0x75,0xF7,0x7C,0x1F,
   0xB7,0x7F,0xCB,0xB9,0x61,0xB6,0x3D,0x80,0x2C,0xF8,0xA8,0x75,0xA3,0x26,0xEA,0x4F,
   0x4C,0xC2,0x5D,0x1F,0x2B,0x66,0x58,0x39,0xEB,0xC9,0xA6,0xE3,0xA9,0x30,0xB3,0x3A},

  {0x95,0xE6,0x56,0xED,0x6C,0x52,0xAB,0x70,0xD2,0x8B,0x93,0xD9,0xBC,0x02,0x72,0x71,
   0x69,0xF3,0xB5,0x04,0xBA,0xF3,0x9E,0x28,0xB6,0x11,0x1B,0x12,0x0C,0x21,0x03,0xBE,
   0xF1,0xCF,0x3C,0x87,0x0A,0xFD,0x41,0x16,0x77,0x84,0x13,0x2E,0x70,0xA1,0x34,0x2F,
   0x4F,0xC9,0x9B,0xA3,0x48,0xD7,0x6B,0x75,0xE7,0xEE,0xB7,0xA2,0xD3,0x11,0x8C,0x4B,
   0xB4,0x6E,0xA8,0xAD,0x8B,0x99,0xD0,0xE0,0xCB,0xAE,0xFF,0xB9,0x97,0xA9,0x0E,0x16,
   0x1F,0x47,0x72,0x07,0xA4,0xBC,0x0A,0x10,0xB2,0xFA,0x6E,0xD4,0x90,0xE9,0xB8,0xA2,
   0x4D,0x34,0xAF,0xA3,0xE9,0xE7,0x6A,0x75,0xCD,0x4C,0xE1,0x44,0xFF,0x68,0xE8,0x1A,
   0x0A,0x04,0x0E,0x1D,0x98,0x41,0xBF,0x72,0x69,0xB2,0x0F,0xAA,0x7E,0x0D,0xDC,0x20},

  {0xCA,0xD7,0xB1,0x1D,0x50,0x17,0x12,0xC6,0x75,0x42,0x37,0xD4,0x43,0x94,0xE7,0x9B,
   0x66,0x59,0x65,0x57,0x03,0xFE,0x87,0xDF,0x02,0xE3,0x94,0x70,0x52,0xDC,0x26,0x0C,
   0xFC,0x8B,0x14,0x2C,0xF0,0x0D,0x9B,0x32,0xEF,0x2A,0x34,0x2F,0x5A,0x02,0x57,0x06,
   0xCE,0x90,0x08,0x50,0xED,0x16,0x56,0xA1,0x43,0x05,0x29,0x15,0x5E,0x7B,0x4B,0x6F,
   0xCA,0xA1,0xAE,0xB4,0x21,0xF2,0x3D,0x67,0xD6,0x48,0x78,0xF9,0xAE,0x31,0x46,0x50,
   0x3F,0x75,0x51,0xAC,0x03,0x93,0xCF,0x3C,0x55,0xEC,0x33,0xB0,0x31,0xDF,0xD7,0xE5,
   0x47,0xA5,0xEF,0x21,0xCF,0x91,0x3C,0xAA,0x8F,0x9B,0x81,0xF4,0xFA,0xB5,0x19,0xEA,
   0x8D,0xFF,0x89,0xBB,0xC0,0xF8,0xEF,0xB4,0x81,0x0E,0x82,0x9D,0x66,0x36,0xAA,0x90},

  {0xE5,0x4F,0x42,0xE5,0x4E,0x35,0xCE,0x1D,0x26,0xA6,0xE5,0xD2,0xBC,0x5F,0xAD,0x6E,
   0x61,0x8C,0x0D,0x7E,0xDF,0x78,0x0B,0x24,0xD8,0x9A,0xD3,0xC1,0x7D,0xA2,0xB4,0xD5,
   0xFA,0x29,0x00,0x79,0x0D,0x75,0xF6,0x20,0xA3,0x7D,0x27,0xAF,0xCF,0x53,0xE6,0x92,
   0x0E,0x3C,0xC1,0xA9,0x3F,0xF6,0xC8,0x4B,0x11,0x70,0xE6,0x4E,0x98,0xCE,0x28,0xFD,
   0xF5,0xC6,0x2D,0xB8,0xF4,0xC7,0xCB,0xA4,0x58,0xBB,0x3B,0x59,0xB2,0xFD,0x62,0x73,
   0x2F,0x6C,0x40,0x79,0xD0,0x04,0x2D,0xAA,0x26,0x67,0x1D,0x02,0x61,0x44,0xE0,0x46,
   0xC2,0xED,0x4F,0x60,0xDC,0xAA,0x17,0xC5,0x2E,0xF0,0x31,0xAC,0xF8,0x5B,0xE1,0x12,
   0xCE,0x02,0x4A,0x68,0xEC,0xA4,0x47,0xD7,0xF5,0x50,0xC4,0x06,0xEA,0x2B,0x11,0xC8},

  {0xF2,0x83,0x3B,0x19,0x41,0x24,0xA0,0x70,0x8F,0x54,0x8C,0xD1,0xC3,0xBA,0x08,0x14,
   0xE2,0x66,0xB9,0x6A,0x31,0x3B,0x4D,0x59,0x35,0xA6,0x70,0x19,0xEA,0x1D,0xFD,0xB9,
   0x79,0x78,0x0A,0x53,0xF3,0xC9,0xC0,0xA9,0x85,0x56,0xAE,0x6F,0x85,0xFB,0x3E,0x58,
   0x6E,0x6A,0xA5,0x55,0xD6,0x86,0x87,0x3E,0x38,0x4A,0x01,0xE3,0x7B,0x94,0x99,0x34,
   0xEA,0x75,0xEC,0x3E,0x9E,0x5D,0x30,0xC5,0x9F,0xC2,0x9A,0x89,0xBC,0x9B,0x70,0x62,
   0xA7,0x60,0xC8,0x93,0x39,0xCF,0xDC,0xE1,0x1F,0xA2,0x8A,0x5B,0x49,0x09,0x7B,0x97,
   0x00,0x49,0x1F,0x40,0x55,0x37,0x82,0x72,0xFE,0x45,0xE9,0x80,0xF9,0x2C,0x9D,0x6E,
   0xEF,0xFC,0xAB,0x81,0x7A,0x8A,0x13,0xE6,0x4F,0x7F,0xE7,0x4B,0x2C,0x25,0xCC,0x64}
};

static const u8 sbas_l1ca_codes[NUM_SIGNALS_SBAS_L1CA][PRN_CODE_LENGTH_BYTES] = {
  {0x6E,0x61,0xF0,0xB5,0xD5,0x02,0x6D,0x98,0x6E,0x06,0xA4,0xC1,0x87,0x74,0xC2,0xCF,
   0x0A,0x3C,0x55,0x7C,0x31,0x80,0xF3,0x67,0x25,0x59,0x00,0xED,0x21,0x0A,0xD7,0xA1,
   0xA4,0x6F,0x9B,0xF5,0x10,0xCE,0xAE,0x7F,0x92,0x9A,0xD7,0x93,0x8A,0xEA,0x50,0x35,
   0xC7,0x98,0xCC,0x56,0xA9,0x63,0x22,0x44,0xBB,0xA0,0xB5,0xF7,0x95,0xD7,0xDF,0x49,
   0x07,0x49,0x4F,0xE6,0x09,0xE2,0x79,0xA9,0x1C,0x93,0x90,0xA3,0x42,0x27,0x46,0xEB,
   0x81,0x4B,0x41,0x53,0x73,0x67,0x04,0x2B,0x7F,0xF4,0xEE,0xA7,0xA0,0x79,0x34,0xE2,
   0x29,0x73,0xF8,0xED,0xB6,0x6D,0x33,0xBB,0xE1,0xF6,0x28,0x06,0x93,0xB6,0x66,0x0F,
   0x28,0x85,0x0A,0x51,0x74,0xEC,0x01,0xF7,0xC7,0x73,0x6F,0xA1,0xC5,0xEE,0x3D,0x2E},

  {0x57,0xA4,0x67,0xEC,0xFD,0x4F,0xF6,0x49,0xAC,0xA2,0xF4,0xE1,0x0E,0xE9,0x57,0x78,
   0xDA,0x89,0x8D,0x50,0x30,0xF7,0x8F,0x1B,0x04,0xA7,0xE1,0x04,0xB7,0x24,0x83,0x90,
   0x1E,0x40,0xB8,0xB8,0xD6,0xC0,0x73,0xD3,0xBD,0x02,0x24,0x6B,0x94,0xC8,0x8C,0xEE,
   0x94,0x7C,0x1E,0x50,0x56,0xA8,0x68,0xB1,0xBC,0x75,0xDD,0xDE,0x49,0x51,0x53,0xB2,
   0xDD,0x30,0x08,0x57,0x26,0x9C,0xEB,0x70,0x1A,0x31,0x84,0xF6,0xBF,0x5F,0x2B,0xF9,
   0xCD,0x1C,0x52,0xD3,0xE6,0x36,0xB5,0xBF,0xBF,0x58,0x27,0x5E,0x72,0x99,0xAA,0x08,
   0x7B,0x06,0x37,0xB6,0x70,0xD8,0x50,0x29,0xDE,0x91,0xAB,0x0A,0x46,0x83,0x90,0xCC,
   0xA6,0x76,0x49,0xF1,0x68,0x20,0x25,0xD4,0xD7,0x6A,0x7E,0x74,0x16,0x79,0xDF,0xB8},

  {0xD2,0x0A,0xA6,0x8C,0xF6,0xF4,0x15,0xA8,0xA3,0x55,0xFB,0xAD,0xBF,0x9B,0xF6,0xF5,
   0x0B,0xF0,0x97,0x3E,0x00,0x81,0x62,0x7A,0x78,0x60,0x7E,0xC4,0x46,0x32,0x65,0x4A,
   0x81,0x66,0x28,0x8F,0x28,0x9A,0x24,0x7B,0x83,0xA9,0x65,0x25,0x70,0xFC,0xEB,0x30,
   0x47,0xB6,0x23,0xD9,0x2D,0x5C,0xFE,0x79,0x89,0x65,0x7F,0x71,0xA2,0x92,0x3B,0x20,
   0xBF,0x88,0x94,0x53,0x8C,0x11,0x67,0xD6,0x1F,0x57,0xCB,0x38,0x28,0x5B,0xDC,0xAB,
   0x5E,0xB2,0x28,0x0D,0xD3,0x9D,0xA9,0x2E,0x44,0x64,0x3F,0x38,0xDB,0x36,0x1C,0x14,
   0x0C,0x9C,0x2A,0xB6,0x96,0xB9,0x71,0x31,0x5E,0x59,0x25,0xA4,0xDA,0x3C,0x84,0x7F,
   0x3A,0x2F,0x3C,0x63,0xEC,0xF9,0x98,0xC8,0xFD,0x2F,0x7C,0x7C,0x8F,0xA0,0x84,0xC4},

  {0xD9,0x57,0x24,0x4C,0xE1,0x83,0xD2,0x6A,0xBC,0xBB,0xE5,0x34,0xDD,0x7E,0xB5,0xEE,
   0xA9,0x02,0xA3,0xE2,0x60,0x6C,0xB8,0xB8,0x81,0xEF,0x41,0x45,0xA4,0x1F,0xA8,0xFF,
   0xBF,0x2B,0x08,0xE0,0xD4,0x2E,0x8B,0x2B,0xFE,0xFF,0xE7,0xB8,0xB8,0x94,0x24,0x8D,
   0xE0,0x22,0x58,0xCB,0xDA,0xB5,0xD3,0xE9,0xE3,0x44,0x3A,0x2E,0x75,0x14,0xEA,0x04,
   0x7A,0xF9,0xAC,0x5A,0xD9,0x0A,0x7E,0x9A,0x15,0x9B,0x54,0xA5,0x06,0x52,0x32,0x0E,
   0x79,0xEE,0xDD,0xB1,0xB8,0xCB,0x90,0x0D,0xB2,0x1C,0x0F,0xF5,0x88,0x69,0x70,0x2C,
   0xE3,0xA8,0x10,0xB7,0x5A,0x7B,0x33,0x00,0x5F,0xC8,0x38,0xF9,0xE3,0x42,0xAD,0x18,
   0x02,0x9D,0xD7,0x46,0xE5,0x4A,0xE2,0xF0,0xA9,0xA5,0x78,0x6D,0xBC,0x12,0x32,0x3E},

  {0x1C,0x26,0x1C,0x45,0xB4,0x98,0xCB,0x26,0xB6,0x77,0x7A,0xA9,0xF3,0x77,0x5B,0x4B,
   0x8E,0x5E,0x56,0x5E,0x0B,0x3A,0x81,0x9B,0x77,0x97,0x71,0x88,0xF7,0x40,0xC4,0xC7,
   0x50,0x1F,0x32,0xE1,0x18,0xEC,0xC9,0x1A,0xFF,0x6E,0xFA,0xE5,0x81,0xEA,0x0D,0xEA,
   0xD8,0x90,0xB3,0xEE,0xD3,0x06,0xA9,0xD1,0xB7,0xCE,0x3E,0x3F,0x46,0xA6,0x5C,0xFE,
   0x6C,0x42,0xA9,0xDA,0xF7,0xE5,0xF1,0x1E,0x2A,0x47,0x69,0x97,0xC3,0x98,0xB4,0x39,
   0x3C,0x0A,0xB4,0x09,0x79,0x10,0x25,0x88,0x41,0x02,0x70,0xF6,0x4C,0x32,0xEB,0x46,
   0x9F,0x32,0x50,0x68,0xA3,0x12,0x6D,0xA0,0xA5,0x65,0x3D,0xC2,0x73,0x93,0x32,0x63,
   0x4D,0xB5,0x21,0x63,0x0A,0x98,0xB9,0xD0,0x7D,0xE7,0xF2,0xD2,0x13,0x1F,0x90,0x76},

  {0x70,0x43,0x2C,0x6E,0x86,0xE6,0xBF,0x9E,0x91,0xCD,0xEE,0x34,0x80,0xA1,0xAA,0xE6,
   0xD6,0xBA,0xD9,0x87,0xEB,0xF9,0xB4,0xD6,0x0A,0x27,0x92,0x34,0x27,0xA8,0xC3,0xF4,
   0x59,0x17,0xF6,0xE7,0x5C,0x99,0xBD,0xFF,0x07,0xCB,0x66,0x07,0x4A,0x46,0x99,0xCC,
   0x15,0x78,0x52,0xBC,0xFB,0x16,0xED,0x1F,0x7D,0x15,0xD6,0x65,0xAA,0xB0,0x5C,0x45,
   0xD2,0x7C,0xB9,0x25,0x87,0x11,0x3A,0x09,0x00,0x5F,0xB4,0x80,0x52,0x3E,0x57,0x3E,
   0x52,0xDC,0xA3,0xC5,0x00,0xEC,0x2A,0x99,0x2F,0x6F,0xD9,0x04,0x25,0x31,0x94,0xA3,
   0x3A,0x48,0xD3,0x82,0x17,0x06,0x83,0xE3,0xE3,0x18,0xD0,0xFE,0xD0,0x4B,0xA5,0xDC,
   0x04,0xD9,0xA2,0x32,0x00,0xB2,0x47,0x6C,0x4B,0x6E,0xD4,0xF9,0x9A,0xDF,0xDA,0xDE},

  {0x02,0xE2,0xA1,0xBF,0xFF,0xFC,0xD1,0xAE,0xE7,0x20,0x8F,0x48,0x47,0x3E,0x6A,0x17,
   0xC0,0x5C,0x03,0x18,0xCD,0x69,0x83,0x28,0x50,0x70,0x3A,0x0A,0x8C,0xE9,0x8D,0x10,
   0x6D,0x70,0x28,0x34,0x96,0xA4,0x34,0x84,0xF3,0x5D,0xAE,0x32,0x5A,0xE4,0x36,0x27,
   0xD6,0x10,0xC0,0xDE,0x43,0x8A,0xE9,0xB5,0xF0,0x99,0x70,0x60,0xCC,0xFF,0x92,0xD2,
   0xD6,0x8B,0xEB,0xB6,0x29,0x6B,0xE4,0x3C,0xAB,0x43,0x25,0x7B,0x6E,0x26,0x31,0x97,
   0xFD,0x6A,0xBF,0xB2,0x9A,0xF1,0x2A,0x7F,0x4E,0x4E,0xC1,0x84,0xED,0xBF,0x3A,0x3F,
   0x85,0x5C,0x60,0x1E,0x4E,0x73,0x11,0x67,0x3A,0xA5,0xCC,0xD4,0x95,0x49,0xAD,0x45,
   0xDD,0x82,0xDF,0x39,0x5D,0x30,0x87,0x7B,0x3C,0xA9,0x16,0xE6,0x74,0xC1,0x43,0xBC},

  {0x8C,0x11,0xE2,0x1F,0xE3,0x30,0xF5,0x8D,0xF7,0x39,0x9E,0x9D,0x94,0xA9,0x88,0x81,
   0xB3,0xD7,0x2D,0xAA,0x9D,0xF2,0xB4,0x8B,0xD5,0x38,0x9A,0x4B,0x9F,0xD2,0xA6,0x7F,
   0xCC,0x1B,0x98,0x6C,0x94,0x4A,0xCC,0x7C,0xB0,0xA0,0x6D,0xE1,0x76,0xB8,0x9E,0x44,
   0xA2,0x4E,0x86,0x45,0xCF,0x97,0x52,0xED,0xAF,0xA8,0x97,0x90,0xF0,0xBA,0x2B,0x64,
   0x71,0x42,0x4F,0xBB,0xD6,0xFD,0x71,0xD6,0xA4,0xE9,0xF5,0x28,0xD7,0x2B,0x28,0x60,
   0x49,0x98,0x30,0xD0,0xC4,0x0C,0x0F,0xCD,0x43,0x0A,0xE9,0x2F,0x17,0x4F,0xE0,0x1B,
   0x1D,0xF2,0x47,0x1F,0x64,0xD0,0x72,0x4E,0xBB,0xFC,0x5F,0x27,0x30,0x88,0x90,0x91,
   0x79,0x69,0x41,0x8E,0xD0,0x5A,0x40,0x5F,0x42,0x66,0x10,0xFF,0xDE,0xAA,0xAE,0x3A},

  {0x29,0x6B,0x61,0xF5,0x57,0x24,0x1B,0xCE,0xB1,0x44,0x73,0xA1,0x37,0x71,0x1F,0x3E,
   0xFA,0xBB,0xAE,0xFB,0x97,0xD8,0x4A,0x37,0xE3,0xB1,0xBC,0x60,0x16,0x12,0xEC,0xD7,
   0x14,0xD1,0xF8,0x3A,0xF0,0xB6,0x25,0x0C,0xFF,0xD5,0x44,0xDB,0x91,0x15,0x7D,0x1E,
   0x13,0x87,0x99,0xF6,0x0E,0x11,0x38,0x77,0x54,0xC9,0x50,0xE9,0x51,0x6A,0x25,0x02,
   0x63,0x53,0xC7,0xB7,0x5E,0x17,0x98,0x1D,0x55,0xA2,0xCC,0xED,0x40,0x72,0x00,0x2D,
   0xD2,0x49,0xF2,0x74,0x94,0x2C,0x86,0x50,0xD6,0xBD,0x39,0x9A,0xCF,0x63,0xE1,0x6C,
   0x61,0x8E,0x66,0xE1,0x85,0x39,0xE4,0x60,0xEF,0xCD,0xE5,0x08,0x13,0xC5,0x56,0x9F,
   0xA4,0xC5,0x6E,0x16,0x23,0xA2,0x5E,0x7D,0x9E,0xBD,0x43,0x1B,0x0C,0xAC,0x51,0xF0},

  {0x55,0xF1,0x21,0x2A,0xAE,0x4D,0x45,0x6E,0x4B,0xE9,0x76,0x9A,0xA7,0xA0,0x80,0x45,
   0xB5,0x93,0x58,0xDE,0x78,0x0A,0x11,0x17,0x37,0xF3,0x36,0xDF,0xB9,0x1F,0x4E,0x9E,
   0x9E,0x33,0x88,0x28,0x5A,0x80,0x17,0x94,0xEA,0x4C,0x7B,0xE1,0xCD,0x06,0xA0,0x54,
   0x5D,0x3E,0x72,0x8E,0xD8,0xBD,0x4A,0x30,0xB8,0x39,0x31,0x73,0xF7,0xD4,0xFD,0x73,
   0xBD,0x3B,0xB3,0xB4,0xC7,0x93,0x1C,0x7F,0x56,0x80,0xF6,0x57,0x32,0x8E,0x52,0xE3,
   0xA3,0x2C,0x24,0x3E,0x87,0x4A,0x72,0x20,0x7F,0xA9,0x31,0xB8,0xA8,0x06,0x8C,0x98,
   0x4C,0xF8,0x6D,0xE1,0xD8,0xE6,0xFB,0x68,0x90,0x75,0x9F,0x6D,0x98,0x50,0x5A,0xF1,
   0x2F,0x0D,0xBD,0x67,0xA0,0x15,0x35,0x76,0x78,0x81,0xBD,0x1C,0x84,0x1B,0x67,0x24},

  {0xC7,0x93,0x99,0xB6,0xAA,0xE7,0xC8,0xE2,0xED,0xEC,0x10,0xD5,0x69,0x37,0x84,0xB2,
   0xE7,0x00,0xF6,0xA4,0xA6,0x3F,0xBA,0x0B,0xA6,0x08,0x0A,0xC7,0xDF,0xB6,0xE1,0x28,
   0x82,0x44,0x12,0x35,0x5A,0x66,0x76,0xB5,0xF2,0xCC,0xB3,0x6F,0x63,0x9A,0x1F,0x40,
   0xEE,0xA2,0x2B,0xFB,0x4A,0x39,0x93,0x8D,0xA4,0x13,0x74,0x71,0xFF,0x4D,0x24,0x28,
   0xC0,0x30,0xEE,0x36,0x07,0x84,0x6B,0xB8,0x94,0x9F,0x18,0x49,0xAB,0xEC,0xB7,0xA0,
   0xB8,0x8E,0xD6,0x0A,0x5B,0x2A,0x9F,0xFA,0xBD,0x50,0xBE,0x87,0x29,0xE4,0xA1,0x55,
   0xF9,0xC6,0x20,0xC1,0xB7,0x1A,0x4F,0xC7,0xC0,0x08,0xC9,0xEF,0x05,0x98,0x32,0x3E,
   0x92,0xAA,0x29,0x1C,0xB2,0xE2,0xDC,0x5B,0xE8,0xEB,0x9C,0x59,0xDB,0xCC,0xE1,0xF4},

  {0xA5,0x90,0xBB,0x8C,0x10,0x95,0x34,0xB0,0x23,0x9D,0x75,0x03,0x23,0x24,0xE2,0x46,
   0x97,0xA9,0xE2,0xAC,0x84,0x58,0xDF,0x66,0x52,0x25,0x7C,0xCC,0xDF,0xEB,0x3E,0x37,
   0x8A,0x3B,0xAA,0x4F,0x3F,0xED,0xE3,0xB9,0x9C,0x47,0x7B,0xBC,0x12,0x19,0xA8,0x2B,
   0xE5,0x44,0x17,0x05,0x4D,0xB1,0x24,0xBB,0x70,0xEA,0x40,0xF0,0x40,0xBF,0xF6,0x95,
   0x81,0xC5,0xB4,0x3C,0x70,0xA5,0xC8,0x86,0x62,0x01,0x49,0xA5,0xE0,0x33,0x13,0x16,
   0xF9,0x26,0x53,0x1F,0x24,0x74,0x84,0xBE,0x2E,0x45,0x7A,0x67,0x0C,0xB0,0xCD,0x30,
   0xC9,0xED,0x12,0xBF,0xC3,0xA2,0x68,0x7D,0x54,0x95,0xBA,0x39,0xF4,0x35,0x6A,0xDA,
   0x1D,0x73,0xC9,0xDF,0x87,0xAF,0xA1,0xEB,0x0B,0x57,0x4C,0xB1,0xDC,0xFF,0xE8,0xFC},

  {0xAB,0xF6,0xA9,0x9D,0x98,0x99,0xBC,0x5A,0xCA,0x56,0x84,0x48,0x1A,0xE1,0x75,0x1F,
   0xBF,0xE4,0x79,0x7D,0x46,0xFC,0x8F,0x46,0xDB,0xB8,0xE9,0x7B,0x0F,0x5E,0xE6,0x1B,
   0x8B,0x4C,0xD6,0x33,0x1E,0x13,0x02,0x50,0x0A,0x69,0x2F,0x8D,0xA8,0x36,0x8B,0x66,
   0x23,0x4A,0xCA,0xA9,0x62,0x29,0xD7,0x43,0x6E,0xC8,0x9C,0x2B,0x13,0x5B,0x24,0x93,
   0x7E,0x0E,0xFE,0xC9,0x77,0x70,0xA0,0xAF,0xBE,0x87,0xC5,0x5E,0x3A,0x4A,0x54,0xA7,
   0xD6,0x58,0xC1,0xC6,0x22,0xD6,0x90,0xEB,0xD3,0x3D,0x17,0x75,0x40,0xE7,0xDE,0xB0,
   0x5C,0xBC,0xA3,0x2B,0x03,0x0E,0xA1,0x84,0x86,0x75,0x24,0xD3,0xA6,0x40,0xA5,0x81,
   0xDB,0xC6,0xAA,0x4D,0xB8,0xC8,0x22,0xE7,0xDE,0x62,0xBA,0x72,0x52,0x0C,0xAB,0x5C},

  {0x09,0xBF,0x23,0x7F,0xE8,0x8B,0x16,0x6C,0xF8,0xCE,0x91,0xD1,0x25,0xDB,0x29,0x0C,
   0x62,0xAE,0x37,0xC4,0xAD,0x84,0x59,0xEA,0xA9,0xFF,0x05,0x8B,0x6E,0xC4,0x40,0xA5,
   0x53,0x3D,0x08,0x5B,0x6A,0x10,0x9B,0xD4,0x8E,0x0B,0x2C,0xAF,0x92,0x8C,0xF9,0x9A,
   0x71,0x84,0xBB,0xCC,0xB4,0x63,0xC4,0x25,0x9A,0xB8,0x35,0x3F,0x1B,0x79,0x43,0xF6,
   0x13,0xFA,0xD3,0xBF,0x7C,0x70,0xFD,0x70,0xA1,0x8F,0xBA,0xE6,0x40,0x2F,0xDF,0x32,
   0xDA,0x36,0x4A,0x0E,0xF1,0xA7,0x13,0x5C,0xB8,0x36,0xF1,0x49,0xBE,0xE0,0x56,0x07,
   0x6A,0x68,0x5A,0x1F,0x82,0xB1,0x53,0x56,0x3B,0x34,0xD1,0x89,0xAC,0x37,0x84,0x22,
   0xE5,0x30,0x34,0x1C,0x54,0x83,0xFD,0x43,0x68,0x23,0x12,0xF7,0x47,0x73,0xF5,0x46},

  {0x8E,0x44,0xA4,0xD9,0xB0,0x32,0x46,0xAA,0x10,0x72,0x1C,0xE6,0x3D,0xE0,0x5F,0xBC,
   0xDC,0xCD,0xF8,0x24,0xD5,0x0F,0x2A,0x87,0xE6,0x6C,0x4D,0x90,0x91,0xE9,0x6B,0x71,
   0x4C,0x68,0xA8,0xFC,0x18,0x0A,0xA8,0x3B,0xE7,0xEE,0x32,0x6B,0x2F,0x76,0xB2,0xFE,
   0x6B,0x0C,0xEA,0x9B,0x41,0x82,0x70,0x6C,0xAB,0xE4,0x7B,0x3D,0x4E,0x3F,0x85,0xA5,
   0x11,0x49,0xF4,0x58,0x37,0xF2,0x86,0xD9,0xE8,0x58,0x87,0x89,0x5A,0xFA,0x51,0x7A,
   0x27,0xA8,0x46,0x3D,0xA5,0x70,0xC8,0x52,0x83,0xFB,0xFF,0xC9,0xCD,0xD0,0xC6,0x8B,
   0x2A,0x0C,0x1D,0x48,0xCC,0xEE,0xD9,0x0F,0xF5,0x18,0x6B,0x40,0xEE,0x5B,0x5A,0xAC,
   0xF0,0x12,0xB5,0x18,0x18,0x6F,0x50,0xFD,0xED,0x8D,0xD3,0x97,0x4C,0xC8,0x16,0xA6},

  {0x5C,0x42,0x5B,0x12,0xFA,0xC7,0x41,0x7F,0x78,0x5B,0xC0,0x60,0xB1,0x1B,0x85,0xC5,
   0x9B,0x7C,0xD7,0x5A,0x47,0xD6,0x2C,0x25,0xF2,0x39,0xB0,0xE8,0xFC,0xFB,0x27,0x26,
   0x5F,0xE8,0x3D,0xAD,0xA9,0x9E,0x68,0x97,0x2E,0x17,0xE0,0x8B,0xB1,0x9C,0xE0,0x8B,
   0xA4,0x57,0x2C,0x2E,0x22,0x10,0x4F,0x0B,0x28,0xE8,0xAE,0x08,0xB8,0xFC,0x0B,0x56,
   0x52,0xE9,0xE8,0x94,0x13,0xD1,0x96,0xC0,0xF9,0x8D,0x54,0x1E,0xB8,0x6C,0x22,0xF1,
   0x09,0x1A,0x16,0xA6,0x92,0xD3,0x4D,0x1A,0x23,0xBA,0xEC,0xF2,0xE6,0xBF,0x67,0xE0,
   0x9A,0x54,0x1F,0xA6,0x34,0x16,0x9A,0xF2,0x36,0xCB,0x47,0x1C,0x46,0x38,0x2E,0xF2,
   0xB6,0x89,0x39,0x05,0xA3,0x37,0x0F,0xCC,0x0A,0x7D,0xEF,0xD2,0xF5,0x7E,0xB1,0x6E},

  {0x87,0xF7,0xDE,0xE1,0xE4,0xB8,0x42,0xBB,0x23,0xC0,0xAA,0x1C,0x2B,0x5B,0x5A,0x3C,
   0xF2,0x22,0x77,0xA0,0xEA,0xD3,0x17,0xB5,0x23,0xA6,0xCB,0xA7,0xD4,0x0D,0x02,0xC9,
   0x8D,0xB3,0x1D,0x79,0xEB,0x14,0xD7,0x38,0x23,0xB5,0xA9,0x01,0x53,0xEC,0xF2,0x21,
   0x92,0x65,0xB4,0x3B,0xBB,0x2F,0x75,0x57,0x3B,0x35,0xE4,0x46,0x01,0x17,0x73,0x80,
   0xFE,0x9B,0xAF,0x78,0xE3,0xB0,0x0C,0x66,0x47,0x55,0x25,0xC0,0xD0,0x18,0x21,0x68,
   0x8D,0x9E,0x74,0xA5,0xB0,0xE9,0xF7,0x68,0xDF,0xE8,0x22,0x83,0x83,0x69,0x2D,0xF3,
   0xFC,0xA0,0x6F,0x0F,0x20,0x1E,0xB8,0x95,0x53,0xA6,0xB3,0x31,0x30,0x33,0x2E,0xAF,
   0x69,0x96,0x31,0x7A,0x1B,0x4D,0x6A,0x47,0x9F,0x71,0x81,0x59,0x3D,0xAD,0xC0,0xEC},

  {0x7E,0x25,0x3E,0x7F,0x0E,0xEA,0x37,0x74,0x78,0x06,0x1F,0x7F,0xB9,0x64,0x3D,0xBF,
   0xFE,0xF7,0x42,0x56,0x29,0x5D,0xE4,0xF6,0x83,0xBA,0x07,0x83,0xF7,0x1D,0x1B,0xD8,
   0x58,0x60,0x8A,0x9B,0x7D,0x67,0x5C,0x16,0x91,0xE5,0x32,0x36,0xF0,0x69,0xBA,0x81,
   0xD3,0x76,0x8F,0x10,0xD4,0x8E,0x1E,0xE7,0x63,0x37,0x0A,0xBE,0xF9,0x54,0x8E,0x43,
   0x2D,0xB7,0xF3,0xD0,0x80,0xC4,0x52,0x20,0xDC,0xD9,0x38,0x7B,0x88,0x47,0x10,0x8F,
   0x7D,0xA2,0x31,0x1C,0x06,0x4E,0x3E,0xCC,0xD2,0x17,0xB4,0x16,0x69,0x66,0x87,0x23,
   0xAF,0x19,0x62,0x16,0xD7,0xAA,0x4A,0x1A,0x31,0xF8,0x4E,0x14,0x82,0x3E,0x6A,0x87,
   0xC2,0x6C,0xC1,0xA0,0x3F,0xD5,0xC4,0x60,0x9E,0x5B,0x22,0x3A,0x14,0x2C,0x99,0x7E},

  {0xB5,0xD4,0x75,0x46,0xCB,0x7D,0x6E,0x5C,0x35,0x9D,0xCE,0xBD,0x1D,0x34,0x1D,0x36,
   0x63,0x62,0xF5,0x86,0x9C,0x85,0xC8,0xF7,0xF4,0xC6,0x7B,0xA2,0x09,0xFC,0xF2,0x4E,
   0x76,0x34,0xBB,0x21,0x52,0x44,0x11,0xD0,0x9F,0x38,0x9E,0x19,0x68,0x9A,0x42,0x9F,
   0xF1,0xAA,0x54,0x43,0x30,0x5C,0x18,0x18,0xA8,0x7D,0xFF,0xB9,0x2C,0x3C,0xA7,0x9F,
   0xAB,0x3B,0x08,0x0A,0xF9,0x83,0xE3,0x0F,0xA2,0x4B,0xE1,0x7D,0x2A,0x53,0x45,0x72,
   0x05,0xCF,0x23,0x50,0x51,0x5D,0xBE,0x59,0x83,0xA6,0x20,0xD6,0xC5,0xAF,0x7E,0xF1,
   0x4F,0x87,0x88,0x44,0xA2,0x65,0x11,0xDC,0x84,0x9B,0xDC,0x2B,0xE5,0xBD,0x66,0x52,
   0xF7,0x9A,0x02,0x2E,0xCC,0x96,0x64,0x7C,0x52,0x7F,0x01,0x2A,0x0D,0x3D,0x4C,0xAC}
};
